陣列函式依其功能細分成各段各別說明如下。
v 產生陣列與基本操作
完整語法 | 意義及說明 |
array(……) | 建立陣列。 |
range(小值, 大值) | 產生陣列,並填入由小值遞增到大值的各個元素。 |
count(陣列) | 傳回陣列中的元素個數。 |
sizeof(陣列) | 同count()。 |
shuffle(陣列) | 將陣列內的順序重新混亂排過。 |
v 配合指標處理陣列的函式
完整語法 | 意義及說明 |
each(陣列) | 傳回陣列中下一個元素,傳回索引及值 |
current(陣列) | 傳回目前陣列指標所在的元素 |
pos(陣列) | 同current()。 |
key(陣列) | 取得陣列中的索引 |
reset(陣列) | 將陣列指標指到陣列的第一個元素。 |
end(陣列) | 將陣列指標移到最後一個元素 |
prev(陣列) | 將陣列指標往上一筆移動 |
next(陣列) | 將陣列指標往下一筆移動 |
v 統計及整批改變功能
完整語法 | 意義及說明 |
array_count_values(陣列) | 檢查陣列中重覆的次數,類似統計次數的功能。 |
array_sum(陣列) | 將陣列各元素的值予以加總計算。 |
array_unique(陣列) | 去除陣列中有重覆值的元素。 |
array_change_key_case(字串, [模式]) | 將陣列的文字索引改為大寫或小寫,模式可能為 CASE_UPPSER (大寫) 或CASE_LOWER (小寫),預設為小寫。 |
array_reverse(陣列, [設定]) | 將陣列內元素順序反轉,設定值若為TRUE,則讓索引與值一併移動;若設為FALSE,則只反轉元素的值。 |
array_walk(陣列, 函式名稱) |
v 合併、分割及擷取
完整語法 | 意義及說明 |
array_values(陣列) | 取出陣列內所有元素的值,原有之索引資料會遺失,而以數值重訂索引。 |
array_keys(陣列, [參數值]) | 將陣列所有元素的索引取出組成一個新陣列傳回,若有設定參數值,則僅將元素值等於參數值的索引取出。 |
array_pad(陣列, 數量, 填入值) | 擴張陣列的元素個數到指定數量個,增加的元素均填入指定的值。若指定數量小於原本的陣列大小時,此函式無作用。 |
array_merge(陣列1, 陣列2, ……) | 合併多個陣列。若有文字索引重覆者,後來加入的元素,會覆蓋前者。 |
array_merge_recursive(陣列, ……) | 與array_merge() 相似,但遇到索引重覆者,其值會改以陣列存入以保留各個值。 |
array_chunk(陣列, 數量, [設定]) | 將陣列依指定數量切割為多維陣列。設定值為TRUE時,則保留原索引;若為FALSE,則重設數字索引。 |
array_combine(索引陣列, 值陣列) | 將兩陣列合併,需注意它是將第一個參數的陣列當成新陣列的索引,而值陣列則為新陣列的值。 |
array_slice(陣列, 起始位置, 數目) | 將陣列由指定起始位置開始,取出指定數目的元素成為新陣列。原陣列的資料仍保留著。 若起始位置為負數,表示由後往前計算找到起始位置。 數目值亦可為負數,表示由起始位置往前取出。 |
array_splice(陣列, 起始位置, 刪除個數, 插入元素) | 與array_slice() 函式語法類似,但此函式為刪除指定的個數。若有『插入元素』,則為以插入元素取代被刪除的元素,單獨一個值表插入一個,若有多個插入元素則以陣列表示。 |
array_rand(陣列, 數目) | 在陣列中隨機取出指定數目的個數,組合成陣列傳回。需注意取出的資料為索引,並非元素值。 |
array_flip(陣列) | 將陣列的索引和值互相對調,但因值的部份可能會有重覆,因此值重覆的部份,對調之後只會保留最後一個。 |
v 陣列搜尋與比對
完整語法 | 意義及說明 |
in_array(值, 陣列, [含型別檢查]) | 檢查陣列內是否存在某指定之資料值。 若型別檢查設定為TRUE,則必須連資料型態都相同。 |
array_search(搜尋值, 陣列, [含型別檢查]) | 與in_array() 相似,但搜尋的依據是索引。 |
array_diff(陣列1, 陣列2, ……) | 比對各組陣列的元素值,將彼此『不同』的元素以陣列傳回。 |
array_diff_assoc(陣列, ……) | 與array_diff()相似,但只針對相同索引鍵的才互相比較。 |
array_intersect(陣列, ……) | 比對各組陣列的元素值,將彼此『相同』的元素以陣列傳回。 |
array_intersect_assoc(陣列, …) | 與array_intersect()相似,但只針對相同索引鍵的才互相比較。 |
v 陣列的篩選
完整語法 | 意義及說明 |
array_filter(陣列, 自訂函式名稱) | 自訂函式做為陣列篩選的條件,將符合篩選條件的元素取出,組合成新陣列傳回。 |
v 資料元素的增加與取出
完整語法 | 意義及說明 |
array_shift(陣列) | 移除第一個陣列元素。 |
array_unshift(陣列, 元素值, ……) | 在陣列前方增加元素,可一次增加多個。 |
array_pop(陣列) | 刪除陣列的最後一個元素。 |
array_push(陣列, 元素值, ……) | 新增一個或多個元素,置於陣列後面。此函式功能和下述指令相同: $陣列[] = 值; |
v 陣列與其他資料型態之轉換
完整語法 | 意義及說明 |
list(變數1, 變數2, ……) | 將陣列中的元素指定給變數 |
compact(變數名稱字串, ……) | 將各個變數組合成為一個陣列。陣列索引為原變數名稱,陣列值為原變數值。 |
extract(陣列) | 將陣列內的各元素,轉變成以索引名稱的變數,此變數值即為各元素值。 |
serialize(陣列) | 將陣列轉換成特定的字串表示式。 |
unserialize(字串表示式) | 將由serialize() 所轉出的字串表示式,再轉換為陣列。 |
implode(分隔文字, 陣列) | 將陣列的各元素合併成為一串文字,中間插入分隔字元隔開。 |
explode(分隔文字, 字串) | 依據字串內之分隔字元加以拆解,拆解後的各段成為陣列的各元素。 |
join(分隔文字, 陣列) | 同implode() 函式。 |
str_split(字串, [指定字數]) | 將字串依指定字數逐一切割後置入陣列傳回。 |
張貼留言